<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style></style>
  </head>
  <body>
    <div>
      <h1>Map数据结构</h1>
      <p>1.该对象的键可以是任意类型，普通对象只能是字符串类型</p>
      <p>2.普通对象如果键使用了其他类型的值,会被转换为字符串,map不会</p>
      <p>
        3.Map数据结构与对象最大的区别是可以用任意的类型作为键,对象只能使用字符串
      </p>
    </div>
    <script>
      const obj = {};
      obj[true] = "value";
      obj[123] = "value";
      obj[{ a: 1 }] = "value";

      //因为对象数据结构的key只能是字符串的类型,用了其他类型的会被转为字符串类型
      console.log(Object.keys(obj)); //["123", "true", "[object Object]"]

      //用法
      const m = new Map();
      const tom = { name: "tom" };
      const age = { age: "age" };
      m.set(tom, 90);
      m.set(age, 18);
      console.log(m); //{ { name: 'tom' } => 90 }
      console.log(m.get(tom)); //90
      console.log(m.get(age)); //18
      m.has();
      m.delete();
      m.clear();
      m.forEach(value, key);
    </script>
  </body>
</html>
